#include <iostream>
#include <array>
#include <ctime>
using namespace std;

void swap01(int a,int b)
{
    int temp = a;
    a = b;
    b = temp;
    cout<<"swap01中的a = "<<a<<endl;
    cout<<"swap01中的b = "<<b<<endl;
}

void swap02(int *p1,int *p2)
{
    int temp = *p2;
    *p2 = *p1;
    *p1 = temp;
}

//指针与函数
void zhizhenyuhanshu()
{
    //1.值传递：不改变实参，在函数内部处理的是参数的副本，对副本的修改不会影响到原始数据
    int a = 10;
    int b = 20;
    cout<<"a = "<<a<<endl;
    cout<<"b = "<<b<<endl;
    swap01(a,b);

    //2.地址传递:可以改变实参，在函数内部可以直接访问和修改原始数据。
    //这种方式在需要修改原始数据或在大型对象上节省复制开销时非常有用。
    swap02(&a,&b);
}
